/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package BO;

import DAO.DAODocumento;
import java.util.List;
import model.Documento;
import org.hibernate.HibernateException;

/**
 *
 * @author Jefferson
 */
public class BODocumento {
    private BODocumento() {}
    
    private static BODocumento instance = null;
    public static BODocumento getInstance() {
        if (instance == null) {
            instance = new BODocumento();
        }
        return instance;
    }
    
    public void inserir(Documento doc) throws HibernateException {
        if (doc != null) {
            if (doc.getNome().equals("")) {
                throw new HibernateException("O documento deve ser selecionado.");
            }
            if (doc.getUsuario() == null) {
                throw new HibernateException("O usuário deve ser selecionado.");
            }

            DAODocumento dao = DAODocumento.getInstance();
            dao.inserir(doc);
        }
        else
            throw new HibernateException("Nenhum documento a ser inserido.");
    }
    
    public void alterar(Documento doc) throws HibernateException {
        if (doc != null) {
            if (doc.getNome().equals("")) {
                throw new HibernateException("O documento deve ser selecionado.");
            }
            if (doc.getUsuario() == null) {
                throw new HibernateException("O usuário deve ser selecionado.");
            }

            DAODocumento dao = DAODocumento.getInstance();
            dao.alterar(doc);
        }
        else
            throw new HibernateException("Nenhum documento a ser alterado.");
    }
    
    public void excluir(Documento doc) throws HibernateException {
        if (doc != null) {
            DAODocumento dao = DAODocumento.getInstance();
            dao.excluir(doc);
        }
        else
            throw new HibernateException("Nenhum documento a ser excluído.");
    }
    
    public List listarTodos(String ordem) throws HibernateException {
        DAODocumento dao = DAODocumento.getInstance();
        return dao.listarTodos(Documento.class, ordem);
    }
    
    public Documento carregar(Integer id) throws HibernateException {
        if (id != null && id > 0) {
            DAODocumento dao = DAODocumento.getInstance();
            return (Documento)dao.carregar(id, Documento.class);
        }
        else
           throw new HibernateException("Nenhum documento a ser carregado."); 
    }
}